package com.pubinfo.passbook.common.entity;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

/**
 * <p>
 * 
 * </p>
 *
 * @author xuhong
 * @since 2022-07-04
 */
@Data
@Accessors(chain = true)
@TableName("t_new_source_invoice_toll")
@ApiModel(value = "TNewSourceInvoiceToll对象", description = "")
public class TNewSourceInvoiceToll implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "toll_id", type = IdType.ASSIGN_ID)
    private String tollId;

    @TableField("unique_code_of_invoice")
    private String uniqueCodeOfInvoice;

    @ApiModelProperty("发票行性质")
    @TableField("nature_of_invoice_line")
    @JSONField(name="natureOfInvoiceLine")
    private String natureOfInvoiceLine;

    @ApiModelProperty("项目名称")
    @TableField("name_of_toll_fee_items")
    @JSONField(name="nameOfTollFeeItems")
    private String nameOfTollFeeItems;

    @ApiModelProperty("车牌号")
    @TableField("plate_number")
    @JSONField(name="plateNumber")
    private String plateNumber;

    @ApiModelProperty("类型")
    @TableField("types_of_vehicle")
    @JSONField(name="typesOfVehicle")
    private String typesOfVehicle;

    @ApiModelProperty("通行日期起")
    @TableField("entrance_date")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @JSONField(name="entranceDate")
    private Date entranceDate;

    @ApiModelProperty("通行日期止")
    @TableField("exit_date")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @JSONField(name="exitDate")
    private Date exitDate;

    @ApiModelProperty("金额")
    @TableField("amount_excluding_tax")
    @JSONField(name="amountExcludingTax")
    private BigDecimal amountExcludingTax;

    @ApiModelProperty("税率")
    @TableField("tax_rate")
    @JSONField(name="taxRate")
    private String taxRate;

    @ApiModelProperty("税额")
    @TableField("tax_amount")
    @JSONField(name="taxAmount")
    private BigDecimal taxAmount;


    @JSONField(name="inv:NatureOfInvoiceLine",serialize = false)
    public void setNatureOfInvoiceLine(String natureOfInvoiceLine) {
        this.natureOfInvoiceLine = natureOfInvoiceLine;
    }

    @JSONField(name="inv:NameOfTollFeeItems",serialize = false)
    public void setNameOfTollFeeItems(String nameOfTollFeeItems) {
        this.nameOfTollFeeItems = nameOfTollFeeItems;
    }

    @JSONField(name="inv:PlateNumber",serialize = false)
    public void setPlateNumber(String plateNumber) {
        this.plateNumber = plateNumber;
    }

    @JSONField(name="inv:TypesOfVehicle",serialize = false)
    public void setTypesOfVehicle(String typesOfVehicle) {
        this.typesOfVehicle = typesOfVehicle;
    }

    @JSONField(name="inv:EntranceDate",serialize = false)
    public void setEntranceDate(Date entranceDate) {
        this.entranceDate = entranceDate;
    }

    @JSONField(name="inv:ExitDate",serialize = false)
    public void setExitDate(Date exitDate) {
        this.exitDate = exitDate;
    }

    @JSONField(name="inv:AmountExcludingTax",serialize = false)
    public void setAmountExcludingTax(BigDecimal amountExcludingTax) {
        this.amountExcludingTax = amountExcludingTax;
    }

    @JSONField(name="inv:TaxRate",serialize = false)
    public void setTaxRate(String taxRate) {
        this.taxRate = taxRate;
    }

    @JSONField(name="inv:TaxAmount",serialize = false)
    public void setTaxAmount(BigDecimal taxAmount) {
        this.taxAmount = taxAmount;
    }
}
